<!DOCTYPE html><html><head><title>Ext.data.reader.Array | Ext JS 4.0 Documentation</title><script type="text/javascript" src="../ext-all.js"></script><link rel="stylesheet" href="../reset.css" type="text/css"><link rel="stylesheet" href="../scrollbars.css" type="text/css"><link rel="stylesheet" href="../docs.css" type="text/css"><link id="styleCss" rel="stylesheet" href="../style.css" type="text/css"><script type="text/javascript" src="../prettify.js"></script><link rel="stylesheet" href="../prettify.css" type="text/css"><!-- link(rel: 'stylesheet', href: req.baseURL + '/css/ext4.css', type: 'text/css')--><link rel="shortcut icon" type="image/ico" href="../favicon.ico"><!--[if IE]>
<style type="text/css">.head-band { display: none; }
.header { border: 0; top: 0; left: 0px; background: url(../header.gif) repeat-x; }
.doc-tab .members .member a.more { background-color: #efefef; }
</style><link rel="stylesheet" href="/new/css/ie.css" type="text/css"><![endif]-->
</head><body id="ext-body" class="iScroll"><div id="notice" class="notice">For up to date documentation and features, visit 
<a href="http://docs.sencha.com/ext-js/4-0">http://docs.sencha.com/ext-js/4-0</a></div><div class="wrapper"><div class="head-band"></div><div class="header"><h2><a href="../index.html">Sencha Documentation</a></h2></div><div id="search"><form><input type="text" placeholder="Search" id="search-field" autocomplete="off" name="q"></form><div id="search-box"></div></div><div id="treePanel"></div><div id="container"><script type="text/javascript">

    req = {
        liveURL: '.',
        standAloneMode: true,
        origDocClass: 'Ext.data.reader.Array',
        docClass: 'Ext.data.reader.Array',
        docReq: 'Ext.data.reader.Array',
        version: '4.0',
        baseURL: '.',
        baseDocURL: '.',
        baseProdURL: '.'
    };

    clsInfo = {};



</script>

<script type="text/javascript" src="../search.js"></script>
<!--script type="text/javascript" src="/new/javascripts/app/examples.js"></script-->
<script type="text/javascript" src="../class_tree.js"></script>
<script type="text/javascript" src="../class_doc.js"></script>
<script type="text/javascript">
    req.source = 'Array.html#Ext-data.reader.Array';
    clsInfo = {"methods":["Array","getResponseData","read","readRecords"],"cfgs":["idProperty","implicitIncludes","messageProperty","record","root","successProperty","totalProperty","useSimpleAccessors"],"properties":["jsonData","rawData"],"events":[],"subclasses":[]};
    Ext.onReady(function() {
        Ext.create('Docs.classPanel');
    });
</script><div id="top-block" class="top-block"><h1 id="clsTitle" class="cls"><a href="../source/Array.html#Ext-data.reader.Array" target="_blank">Ext.data.reader.Array</a></h1></div><div id="docContent"><div id="doc-overview-content"><div class="lft"><pre class="subclasses"><h4>Hierarchy</h4><div class="subclass f"><a href="Ext.data.reader.Reader.html" rel="Ext.data.reader.Reader" class="cls docClass">Ext.data.reader.Reader</a><div class="subclass"><a href="Ext.data.reader.Json.html" rel="Ext.data.reader.Json" class="cls docClass">Ext.data.reader.Json</a><div class="subclass"><strong>Ext.data.reader.Array</strong></div></div></div></pre><p>Data reader class to create an Array of <a href="Ext.data.Model.html" rel="Ext.data.Model" class="docClass">Ext.data.Model</a> objects from an Array.
Each element of that Array represents a row of data fields. The
fields are pulled into a Record object using as a subscript, the <code>mapping</code> property
of the field definition if it exists, or the field's ordinal position in the definition.</p>




<p><u>Example code:</u></p>




<pre class="prettyprint"><code>Employee = Ext.define('Employee', {
    extend: 'Ext.data.Model',
    fields: [
        'id',
        {name: 'name', mapping: 1},         // "mapping" only needed if an "id" field is present which
        {name: 'occupation', mapping: 2}    // precludes using the ordinal position as the index.        
    ]
});

var myReader = new Ext.data.reader.Array({
    model: 'Employee'
}, Employee);
</code></pre>




<p>This would consume an Array like this:</p>




<pre class="prettyprint"><code>[ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]
</code></pre>

<div class="members"><div class="m-cfgs"><div class="definedBy">Defined By</div><a name="configs"></a><h3 class="cfg p">Config Options</h3><h4 class="cfgGroup">Other Configs</h4><div id="config-idProperty" class="member f inherited"><a href="Ext.data.reader.Array.html#config-idProperty" rel="config-idProperty" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-cfg-idProperty" class="viewSource">view source</a></div><a name="idProperty"></a><a name="config-idProperty"></a><a href="Ext.data.reader.Array.html#" rel="config-idProperty" class="cls expand">idProperty</a><span> : String</span></div><div class="description"><div class="short">Name of the property within a row object
that contains a record identifier value.  Defaults to The id of the model.
I...</div><div class="long"><p>Name of the property within a row object
that contains a record identifier value.  Defaults to <tt>The id of the model</tt>.
If an idProperty is explicitly specified it will override that of the one specified
on the model</p>
</div></div></div><div id="config-implicitIncludes" class="member inherited"><a href="Ext.data.reader.Array.html#config-implicitIncludes" rel="config-implicitIncludes" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-cfg-implicitIncludes" class="viewSource">view source</a></div><a name="implicitIncludes"></a><a name="config-implicitIncludes"></a><a href="Ext.data.reader.Array.html#" rel="config-implicitIncludes" class="cls expand">implicitIncludes</a><span> : Boolean</span></div><div class="description"><div class="short">True to automatically parse models nested within other models in a response
object. See the Ext.data.reader.Reader in...</div><div class="long"><p>True to automatically parse models nested within other models in a response
object. See the <a href="Ext.data.reader.Reader.html" rel="Ext.data.reader.Reader" class="docClass">Ext.data.reader.Reader</a> intro docs for full explanation. Defaults to true.</p>
</div></div></div><div id="config-messageProperty" class="member inherited"><a href="Ext.data.reader.Array.html#config-messageProperty" rel="config-messageProperty" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-cfg-messageProperty" class="viewSource">view source</a></div><a name="messageProperty"></a><a name="config-messageProperty"></a><a href="Ext.data.reader.Array.html#" rel="config-messageProperty" class="cls expand">messageProperty</a><span> : String</span></div><div class="description"><div class="short"><p>The name of the property which contains a response message.
This property is optional.</p>
</div><div class="long"><p>The name of the property which contains a response message.
This property is optional.</p>
</div></div></div><div id="config-record" class="member inherited"><a href="Ext.data.reader.Array.html#config-record" rel="config-record" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Json.html" class="definedIn docClass">Ext.data.reader.Json</a><br/><a href="../source/Json.html#Ext-data.reader.Json-cfg-record" class="viewSource">view source</a></div><a name="record"></a><a name="config-record"></a><a href="Ext.data.reader.Array.html#" rel="config-record" class="cls expand">record</a><span> : String</span></div><div class="description"><div class="short">The optional location within the JSON response that the record data itself can be found at.
See the JsonReader intro ...</div><div class="long"><p>The optional location within the JSON response that the record data itself can be found at.
See the JsonReader intro docs for more details. This is not often needed and defaults to undefined.</p>
</div></div></div><div id="config-root" class="member inherited"><a href="Ext.data.reader.Array.html#config-root" rel="config-root" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-cfg-root" class="viewSource">view source</a></div><a name="root"></a><a name="config-root"></a><a href="Ext.data.reader.Array.html#" rel="config-root" class="cls expand">root</a><span> : String</span></div><div class="description"><div class="short">Required.  The name of the property
which contains the Array of row objects.  Defaults to undefined.
An exception wil...</div><div class="long"><p><b>Required</b>.  The name of the property
which contains the Array of row objects.  Defaults to <tt>undefined</tt>.
An exception will be thrown if the root property is undefined. The data
packet value for this property should be an empty array to clear the data
or show no data.</p>
</div></div></div><div id="config-successProperty" class="member inherited"><a href="Ext.data.reader.Array.html#config-successProperty" rel="config-successProperty" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-cfg-successProperty" class="viewSource">view source</a></div><a name="successProperty"></a><a name="config-successProperty"></a><a href="Ext.data.reader.Array.html#" rel="config-successProperty" class="cls expand">successProperty</a><span> : String</span></div><div class="description"><div class="short">Name of the property from which to
retrieve the success attribute. Defaults to success.  See
Ext.data.proxy.Proxy.exc...</div><div class="long"><p>Name of the property from which to
retrieve the success attribute. Defaults to <tt>success</tt>.  See
<a href="Ext.data.proxy.Proxy.html" rel="Ext.data.proxy.Proxy" class="docClass">Ext.data.proxy.Proxy</a>.<a href="Ext.data.proxy.Proxy.html#exception" rel="Ext.data.proxy.Proxy#exception" class="docClass">exception</a>
for additional information.</p>
</div></div></div><div id="config-totalProperty" class="member inherited"><a href="Ext.data.reader.Array.html#config-totalProperty" rel="config-totalProperty" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-cfg-totalProperty" class="viewSource">view source</a></div><a name="totalProperty"></a><a name="config-totalProperty"></a><a href="Ext.data.reader.Array.html#" rel="config-totalProperty" class="cls expand">totalProperty</a><span> : String</span></div><div class="description"><div class="short">Name of the property from which to
retrieve the total number of records in the dataset. This is only needed
if the wh...</div><div class="long"><p>Name of the property from which to
retrieve the total number of records in the dataset. This is only needed
if the whole dataset is not passed in one go, but is being paged from
the remote server.  Defaults to <tt>total</tt>.</p>
</div></div></div><div id="config-useSimpleAccessors" class="member inherited"><a href="Ext.data.reader.Array.html#config-useSimpleAccessors" rel="config-useSimpleAccessors" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Json.html" class="definedIn docClass">Ext.data.reader.Json</a><br/><a href="../source/Json.html#Ext-data.reader.Json-cfg-useSimpleAccessors" class="viewSource">view source</a></div><a name="useSimpleAccessors"></a><a name="config-useSimpleAccessors"></a><a href="Ext.data.reader.Array.html#" rel="config-useSimpleAccessors" class="cls expand">useSimpleAccessors</a><span> : Boolean</span></div><div class="description"><div class="short">True to ensure that field names/mappings are treated as literals when
reading values. Defalts to false.
For example, ...</div><div class="long"><p>True to ensure that field names/mappings are treated as literals when
reading values. Defalts to <tt>false</tt>.
For example, by default, using the mapping "foo.bar.baz" will try and read a property foo from the root, then a property bar
from foo, then a property baz from bar. Setting the simple accessors to true will read the property with the name
"foo.bar.baz" direct from the root object.</p>
</div></div></div></div><div class="m-properties"><a name="properties"></a><div class="definedBy">Defined By</div><h3 class="prp p">Properties</h3><div id="property-jsonData" class="member f inherited"><a href="Ext.data.reader.Array.html#property-jsonData" rel="property-jsonData" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Json.html" class="definedIn docClass">Ext.data.reader.Json</a><br/><a href="../source/Json.html#Ext-data.reader.Json-property-jsonData" class="viewSource">view source</a></div><a name="jsonData"></a><a name="property-jsonData"></a><a href="Ext.data.reader.Array.html#" rel="property-jsonData" class="cls expand">jsonData</a><span> : Mixed</span></div><div class="description"><div class="short"><p>DEPRECATED - will be removed in <a href="Ext.html" rel="Ext" class="docClass">Ext</a> JS 5.0. This is just a copy of this.rawData - use that instead</p>
</div><div class="long"><p>DEPRECATED - will be removed in <a href="Ext.html" rel="Ext" class="docClass">Ext</a> JS 5.0. This is just a copy of this.rawData - use that instead</p>
</div></div></div><div id="property-rawData" class="member inherited"><a href="Ext.data.reader.Array.html#property-rawData" rel="property-rawData" class="expand more"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-property-rawData" class="viewSource">view source</a></div><a name="rawData"></a><a name="property-rawData"></a><a href="Ext.data.reader.Array.html#" rel="property-rawData" class="cls expand">rawData</a><span> : Mixed</span></div><div class="description"><div class="short"><p>The raw data object that was last passed to readRecords. Stored for further processing if needed</p>
</div><div class="long"><p>The raw data object that was last passed to readRecords. Stored for further processing if needed</p>
</div></div></div></div><div class="m-methods"><a name="methods"></a><div class="definedBy">Defined By</div><h3 class="mth p">Methods</h3><div id="method-Array" class="member f ni"><a href="Ext.data.reader.Array.html#method-Array" rel="method-Array" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Array.html" class="definedIn docClass">Ext.data.reader.Array</a><br/><a href="../source/Array.html#Ext-data.reader.Array-method-constructor" class="viewSource">view source</a></div><a name="Array"></a><a name="method-Array"></a><a href="Ext.data.reader.Array.html#" rel="method-Array" class="cls expand">Array</a>(
<span class="pre">Object meta</span>)
 : void</div><div class="description"><div class="short"><p>Create a new ArrayReader</p>
</div><div class="long"><p>Create a new ArrayReader</p>
<h3 class="pa">Parameters</h3><ul><li><span class="pre">meta</span> : Object<div class="sub-desc"><p>Metadata configuration options.</p>
</div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">void</span>&nbsp; &nbsp;
</li></ul></div></div></div><div id="method-getResponseData" class="member inherited"><a href="Ext.data.reader.Array.html#method-getResponseData" rel="method-getResponseData" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-method-getResponseData" class="viewSource">view source</a></div><a name="getResponseData"></a><a name="method-getResponseData"></a><a href="Ext.data.reader.Array.html#" rel="method-getResponseData" class="cls expand">getResponseData</a>(
<span class="pre">Object response</span>)
 : Object</div><div class="description"><div class="short">Takes a raw response object (as passed to this.read) and returns the useful data segment of it. This must be implemen...</div><div class="long"><p>Takes a raw response object (as passed to this.read) and returns the useful data segment of it. This must be implemented by each subclass</p>
<h3 class="pa">Parameters</h3><ul><li><span class="pre">response</span> : Object<div class="sub-desc"><p>The responce object</p>
</div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">Object</span>&nbsp; &nbsp;<p>The useful data from the response</p>
</li></ul></div></div></div><div id="method-read" class="member inherited"><a href="Ext.data.reader.Array.html#method-read" rel="method-read" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Reader.html" class="definedIn docClass">Ext.data.reader.Reader</a><br/><a href="../source/Reader.html#Ext-data.reader.Reader-method-read" class="viewSource">view source</a></div><a name="read"></a><a name="method-read"></a><a href="Ext.data.reader.Array.html#" rel="method-read" class="cls expand">read</a>(
<span class="pre">Object response</span>)
 : Ext.data.ResultSet</div><div class="description"><div class="short">Reads the given response object. This method normalizes the different types of response object that may be passed
to ...</div><div class="long"><p>Reads the given response object. This method normalizes the different types of response object that may be passed
to it, before handing off the reading of records to the <a href="Ext.data.reader.Array.html#readRecords" rel="Ext.data.reader.Array#readRecords" class="docClass">readRecords</a> function.</p>
<h3 class="pa">Parameters</h3><ul><li><span class="pre">response</span> : Object<div class="sub-desc"><p>The response object. This may be either an XMLHttpRequest object or a plain JS object</p>
</div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">Ext.data.ResultSet</span>&nbsp; &nbsp;<p>The parsed ResultSet object</p>
</li></ul></div></div></div><div id="method-readRecords" class="member inherited"><a href="Ext.data.reader.Array.html#method-readRecords" rel="method-readRecords" class="expand more ar"><span>&nbsp;</span></a><div class="title"><div class="meta"><a href="Ext.data.reader.Json.html" class="definedIn docClass">Ext.data.reader.Json</a><br/><a href="../source/Json.html#Ext-data.reader.Json-method-readRecords" class="viewSource">view source</a></div><a name="readRecords"></a><a name="method-readRecords"></a><a href="Ext.data.reader.Array.html#" rel="method-readRecords" class="cls expand">readRecords</a>(
<span class="pre">Object data</span>)
 : Ext.data.ResultSet</div><div class="description"><div class="short">Reads a JSON object and returns a ResultSet. Uses the internal getTotal and getSuccess extractors to
retrieve meta da...</div><div class="long"><p>Reads a JSON object and returns a ResultSet. Uses the internal getTotal and getSuccess extractors to
retrieve meta data from the response, and extractData to turn the JSON data into model instances.</p>
<h3 class="pa">Parameters</h3><ul><li><span class="pre">data</span> : Object<div class="sub-desc"><p>The raw JSON data</p>
</div></li></ul><h3 class="pa">Returns</h3><ul><li><span class="pre">Ext.data.ResultSet</span>&nbsp; &nbsp;<p>A ResultSet containing model instances and meta data about the results</p>
</li></ul></div></div></div></div></div></div></div><div id="pageContent"></div></div></div></div></body></html>